#ifndef NODOARBOL_H_GUARD
#define NODOARBOL_H_GUARD

#include "Structs.h"
template <typename T>
class NodoArbol
{
    public:
        NodoArbol(int id, T pContenedor, int Type=1);
        //~NodoArbol();
        NodoArbol<T> operator=(NodoArbol<T> Copy);

        void setHizq(NodoArbol<T>* Hijo);
        void setHder(NodoArbol<T>* Hijo);
        void setPadre(NodoArbol<T>* Padre);  //nuevo

        NodoArbol<T>* getHizq();
        NodoArbol<T>* getHder();
        NodoArbol<T>* getPadre();   //nuevo

        void setContenedor(T Conte);
        void setClave(int id);

        T getContenedor();
        int getClave();

        void setRojicidad(bool R);
        bool getRojicidad();

        void setFB(int fb);
        int getFB();

        NodoArbol<T>** getHHizq()
        {
            return &Hizq;
        }
        NodoArbol<T>**getHHder()
        {
            return &Hder;
        }



    private:
        int Clave;
        T Contenedor;

        bool esRojo;
        int FB;

        NodoArbol<T>* Hizq;
        NodoArbol<T>* Hder;
        NodoArbol* padre;

};

#endif // NODOARBOL_H



